package it.azienda.managerworkstandard.modello;

import it.azienda.framework.modello.BeanBase;
import it.azienda.framework.utilita.Utilita;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
import javax.faces.model.SelectItem;
import org.hibernate.Session;

public class BeanOrdiniPrev extends BeanBase {

    public BeanOrdiniPrev() {
        this.beanBanca = new BeanBanca();
        this.beanCliente = new BeanCliente();
        this.beanComuneResidenzaCli = new BeanComune();
        this.codiceListino = new Integer(0);
        this.beanProdottoDettLookup = new BeanProdottoDett();
        this.beanTipoPagamento = new BeanTipoPagamento();
        this.beanAspetto = new BeanAspetto();
        this.beanConsegna = new BeanConsegna();
        this.beanVettore = new BeanVettore();
        this.beanCausale = new BeanCausale();
        this.beanAgente = new BeanAgente();
        this.tipoDocumento = "O";
        this.imponibile = new Double(0);
        this.sconto = new Double(0);
        this.iva = new Double(0);
        this.totale = new Double(0);
        this.speseSpedizione = new Double(0);
        this.numColliSpedizione = new Double(0);
        this.pesoColli = new Double(0);
        this.prezzoVenditaProdDett = new Double(0);
        this.prezzoFinaleProdDett = new Double(0);
        this.prezzoIvaProdDett = new Double(0);
        this.ivaProdDett = new Double(0);
        this.quantitaProdDett = new Double(0);
        this.scontoProdDett = new Double(0);
        this.ora = new Integer(0);
        this.minuti = new Integer(0);
        this.numeroScontrino = new Integer(0);
        this.data = new Date(System.currentTimeMillis());
        this.dataTrasporto = new Date(System.currentTimeMillis());
        this.porto = new Integer(0);
        this.data1 = new Date(System.currentTimeMillis());
        this.pagato1 = "N";
        this.pagato2 = "N";
        this.pagato3 = "N";
        this.pagato4 = "N";
        this.pagatoBanca = "N";
        this.scaricato = "N";
        this.importo1 = new Double(0);
        this.importo2 = new Double(0);
        this.importo3 = new Double(0);
        this.importo4 = new Double(0);
        this.impostaIva4 = new Double(0);
        this.impostaIva10 = new Double(0);
        this.impostaIva20 = new Double(0);
        this.impostaIva21 = new Double(0);
        this.imponIva4 = new Double(0);
        this.imponIva10 = new Double(0);
        this.imponIva20 = new Double(0);
        this.imponIva21 = new Double(0);
        this.utile = new Double(0);
        this.prezzoAcquistoUtile = new Double(0);
        this.prezzoScontato = new Double(0);
        this.acconto = new Double(0);
    }
    //Dati 
    private Integer id;
    private Integer codice;
    private java.util.Date data;
    private String tipoDocumento;
    private BeanTipoPagamento beanTipoPagamento;
    private BeanBanca beanBanca;
    private BeanFattura beanFattura;

    private Double imponibile;
    private Double sconto;
    private Double iva;
    private Double totale;
    private Double speseSpedizione;
    private Double numColliSpedizione;
    private Double pesoColli;
    private Double netto;
    private Double totaleMerce;
    private String note;
    private String contoCorrente;
    private BeanAspetto beanAspetto;
    private BeanConsegna beanConsegna;
    private BeanVettore beanVettore;
    private BeanCausale beanCausale;
    private BeanAgente beanAgente;
    private Integer ora;
    private Integer minuti;
    private java.util.Date dataTrasporto;
    private java.util.Date dataScontrino;
    private Integer numeroScontrino;
    private Integer porto;
    private Double prezzoAcquistoUtile;
    private Double prezzoScontato;
    private java.util.Date data1;
    private java.util.Date data2;
    private java.util.Date data3;
    private java.util.Date data4;
    private String pagato1;
    private String pagato2;
    private String pagato3;
    private String pagato4;
    private Double acconto;
    private Double importo1;
    private Double importo2;
    private Double importo3;
    private Double importo4;
    private String pagatoBanca;
    private Double impostaIva4;
    private Double impostaIva10;
    private Double impostaIva20;
    private Double impostaIva21;
    private Double impostaIva22;
    private Double imponIva4;
    private Double imponIva10;
    private Double imponIva20;
    private Double imponIva21;
    private Double imponIva22;
    private Double utile;
    //Dati Cliente
    private BeanCliente beanCliente;
    private String ragioneSocialeCli;
    private String dettaglioSocialeCli;
    private String partitaIvaCli;
    private String codiceFiscaleCli;
    private String indirizzoCli;
    private String indirizzo2Cli;
    private BeanComune beanComuneResidenzaCli;
    private Integer codiceListino;
    private SelectItem listini[];
    //Dati Prodotto
    private BeanProdottoDett beanProdottoDett = new BeanProdottoDett();
    private BeanProdottoDett beanProdottoDettLookup = new BeanProdottoDett();
    private java.lang.Integer idProdottoDett;
    private SelectItem[] listaProdottoDett;
    private ArrayList listaProdotti;
    private ArrayList listaProdottiLookup;
    private String codiceProdDett;
    private String descProdDett;
    private String barCodeProdDett;
    private Double prezzoVenditaProdDett;
    private Double prezzoFinaleProdDett;
    private Double ivaProdDett;
    private Integer umProdDett;
    private Double quantitaProdDett;
    private Double scontoProdDett;
    private Double prezzoIvaProdDett;
    private Integer idProdotto;
    private Set prodottiDet = new HashSet();
    private SelectItem[] ordinamento;
    private ArrayList rigo1 = new ArrayList();
    private ArrayList rigo2 = new ArrayList();
    private ArrayList rigo3 = new ArrayList();
    private ArrayList rigo4 = new ArrayList();
    private ArrayList rigo5 = new ArrayList();
    private String scaricato;

    public SelectItem[] getOrdinamento() {
        ordinamento = new SelectItem[4];
        ordinamento[0] = new SelectItem("", "");
        ordinamento[1] = new SelectItem("codice", "Numero");
        ordinamento[2] = new SelectItem("data", "Data");
        ordinamento[3] = new SelectItem("totale", "Importo");
        return ordinamento;
    }

    public void setOrdinamento(SelectItem[] ordinamento) {
        this.ordinamento = ordinamento;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getCodice() {
        return codice;
    }

    public void setCodice(Integer codice) {
        this.codice = codice;
    }

    public java.util.Date getData() {
        return data;
    }

    public void setData(java.util.Date data) {
        this.data = data;
    }

    public String getTipoDocumento() {
        return tipoDocumento;
    }

    public void setTipoDocumento(String tipoDocumento) {
        this.tipoDocumento = tipoDocumento;
    }

    public BeanTipoPagamento getBeanTipoPagamento() {
        return beanTipoPagamento;
    }

    public void setBeanTipoPagamento(BeanTipoPagamento beanTipoPagamento) {
        this.beanTipoPagamento = beanTipoPagamento;
    }

    public BeanBanca getBeanBanca() {
        return beanBanca;
    }

    public void setBeanBanca(BeanBanca beanBanca) {
        this.beanBanca = beanBanca;
    }

    public Double getImponibile() {
        return imponibile;
    }

    public void setImponibile(Double imponibile) {
        this.imponibile = imponibile;
    }

    public Double getSconto() {
        return sconto;
    }

    public void setSconto(Double sconto) {
        this.sconto = sconto;
    }

    public Double getIva() {
        return iva;
    }

    public void setIva(Double iva) {
        this.iva = iva;
    }

    public Double getTotale() {
        return totale;
    }

    public void setTotale(Double totale) {
        this.totale = totale;
    }

    public Double getSpeseSpedizione() {
        return speseSpedizione;
    }

    public void setSpeseSpedizione(Double speseSpedizione) {
        this.speseSpedizione = speseSpedizione;
    }

    public Double getNumColliSpedizione() {
        return numColliSpedizione;
    }

    public void setNumColliSpedizione(Double numColliSpedizione) {
        this.numColliSpedizione = numColliSpedizione;
    }

    public Double getPesoColli() {
        return pesoColli;
    }

    public void setPesoColli(Double pesoColli) {
        this.pesoColli = pesoColli;
    }

    public String getNote() {
        return note;
    }

    public void setNote(String note) {
        this.note = note;
    }

    public BeanCliente getBeanCliente() {
        return beanCliente;
    }

    public void setBeanCliente(BeanCliente beanCliente) {
        this.beanCliente = beanCliente;
    }

    public String getRagioneSocialeCli() {
        return ragioneSocialeCli;
    }

    public void setRagioneSocialeCli(String ragioneSocialeCli) {
        this.ragioneSocialeCli = ragioneSocialeCli;
    }

    public String getPartitaIvaCli() {
        return partitaIvaCli;
    }

    public void setPartitaIvaCli(String partitaIvaCli) {
        this.partitaIvaCli = partitaIvaCli;
    }

    public String getCodiceFiscaleCli() {
        return codiceFiscaleCli;
    }

    public void setCodiceFiscaleCli(String codiceFiscaleCli) {
        this.codiceFiscaleCli = codiceFiscaleCli;
    }

    public String getIndirizzoCli() {
        return indirizzoCli;
    }

    public void setIndirizzoCli(String indirizzoCli) {
        this.indirizzoCli = indirizzoCli;
    }

    public String getIndirizzo2Cli() {
        return indirizzo2Cli;
    }

    public void setIndirizzo2Cli(String indirizzo2Cli) {
        this.indirizzo2Cli = indirizzo2Cli;
    }

    public BeanComune getBeanComuneResidenzaCli() {
        return beanComuneResidenzaCli;
    }

    public void setBeanComuneResidenzaCli(BeanComune beanComuneResidenzaCli) {
        this.beanComuneResidenzaCli = beanComuneResidenzaCli;
    }

    public ArrayList getListaProdotti() {
        return listaProdotti;
    }

    public void setListaProdotti(ArrayList listaProdotti) {
        this.listaProdotti = listaProdotti;
    }

    public String getCodiceProdDett() {
        return codiceProdDett;
    }

    public void setCodiceProdDett(String codiceProdDett) {
        this.codiceProdDett = codiceProdDett;
    }

    public String getDescProdDett() {
        return descProdDett;
    }

    public void setDescProdDett(String descProdDett) {
        this.descProdDett = descProdDett;
    }

    public String getBarCodeProdDett() {
        return barCodeProdDett;
    }

    public void setBarCodeProdDett(String barCodeProdDett) {
        this.barCodeProdDett = barCodeProdDett;
    }

    public Double getPrezzoVenditaProdDett() {
        return prezzoVenditaProdDett;
    }

    public void setPrezzoVenditaProdDett(Double prezzoVenditaProdDett) {
        this.prezzoVenditaProdDett = prezzoVenditaProdDett;
    }

    public Double getPrezzoFinaleProdDett() {
        return prezzoFinaleProdDett;
    }

    public void setPrezzoFinaleProdDett(Double prezzoFinaleProdDett) {
        this.prezzoFinaleProdDett = prezzoFinaleProdDett;
    }

    public Double getIvaProdDett() {
        return ivaProdDett;
    }

    public void setIvaProdDett(Double ivaProdDett) {
        this.ivaProdDett = ivaProdDett;
    }

    public Integer getUmProdDett() {
        return umProdDett;
    }

    public void setUmProdDett(Integer umProdDett) {
        this.umProdDett = umProdDett;
    }

    public Double getQuantitaProdDett() {
        return quantitaProdDett;
    }

    public void setQuantitaProdDett(Double quantitaProdDett) {
        this.quantitaProdDett = quantitaProdDett;
    }

    public Double getScontoProdDett() {
        return scontoProdDett;
    }

    public void setScontoProdDett(Double scontoProdDett) {
        this.scontoProdDett = scontoProdDett;
    }

    public Set getProdottiDet() {
        return prodottiDet;
    }

    public void setProdottiDet(Set prodottiDet) {
        this.prodottiDet = prodottiDet;
    }

    public String getContoCorrente() {
        return contoCorrente;
    }

    public void setContoCorrente(String contoCorrente) {
        this.contoCorrente = contoCorrente;
    }

    public BeanProdottoDett getBeanProdottoDett() {
        return beanProdottoDett;
    }

    public void setBeanProdottoDett(BeanProdottoDett beanProdottoDett) {
        this.beanProdottoDett = beanProdottoDett;
    }

    public BeanProdottoDett getBeanProdottoDettLookup() {
        return beanProdottoDettLookup;
    }

    public void setBeanProdottoDettLookup(BeanProdottoDett beanProdottoDettLookup) {
        this.beanProdottoDettLookup = beanProdottoDettLookup;
    }

    public SelectItem[] getListaProdottoDett() {
        Session nuovaSessione = null;
        if (this.listaProdottiLookup != null) {

            listaProdottoDett = new SelectItem[this.listaProdottiLookup.size()];
            BeanProdottoDett item = new BeanProdottoDett();
            listaProdottoDett = new SelectItem[this.listaProdottiLookup.size() + 1];
            listaProdottoDett[0] = new SelectItem("", "");
            for (int i = 0; i < this.listaProdottiLookup.size(); i++) {
                item = (BeanProdottoDett) this.listaProdottiLookup.get(i);
                listaProdottoDett[i + 1] = new SelectItem(item.getId().toString(), item.getCodice() + " - " + item.getDescrizioneBreve());
            }
        }
        if (listaProdottoDett == null) {
            listaProdottoDett = new SelectItem[1];
            listaProdottoDett[0] = new SelectItem("", "");
        }

        return listaProdottoDett;
    }

    public void setListaProdottoDett(SelectItem[] listaProdottoDett) {
        this.listaProdottoDett = listaProdottoDett;
    }

    public Integer getIdProdottoDett() {
        Integer ritorno = null;
        if (this.getBeanProdottoDett() != null) {
            ritorno = this.getBeanProdottoDett().getId();
        }
        return ritorno;
    }

    public void setIdProdottoDett(Integer idProdottoDett) {
        this.idProdottoDett = idProdottoDett;
        BeanProdottoDett beanProdottoDett = null;
        if (idProdottoDett != null) {
            beanProdottoDett = new BeanProdottoDett();
            try {
                beanProdottoDett = (BeanProdottoDett) beanProdottoDett.dettaglio(idProdottoDett);
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
        this.setBeanProdottoDett(beanProdottoDett);
    }

    public Double getPrezzoIvaProdDett() {
        return prezzoIvaProdDett;
    }

    public void setPrezzoIvaProdDett(Double prezzoIvaProdDett) {
        this.prezzoIvaProdDett = prezzoIvaProdDett;
    }

    public Integer getIdProdotto() {
        return idProdotto;
    }

    public void setIdProdotto(Integer idProdotto) {
        this.idProdotto = idProdotto;
    }

    public HashMap parametriFatturaImmediata(BeanConfigurazione configurazione) {
        HashMap parametriFattura = new HashMap();
        //Configurazione
        Integer numProdotti = new Integer(0);
        if (this.listaProdotti != null) {
            numProdotti = new Integer(this.listaProdotti.size());
        }
        parametriFattura.put("0", numProdotti.toString());
        parametriFattura.put("1", "");
        parametriFattura.put("2", "");
        parametriFattura.put("3", "");
        parametriFattura.put("4", "");
        parametriFattura.put("5", "");
        parametriFattura.put("6", "");
        parametriFattura.put("7", "");
        /*
         parametriFattura.put("1",configurazione.getRagioneSociale());
         parametriFattura.put("2",configurazione.getSottoTitolo());
         
         parametriFattura.put("3",configurazione.getIndirizzo());
         String comune="";
         if(configurazione.getBeanComuneResidenza()!=null){
         if(configurazione.getBeanComuneResidenza().getId()!=null){
         comune=configurazione.getBeanComuneResidenza().getCap()+" - "+configurazione.getBeanComuneResidenza().getDescrizione();
         if(configurazione.getBeanComuneResidenza().getBeanProvincia()!=null){
         if(configurazione.getBeanComuneResidenza().getBeanProvincia().getId()!=null){
         comune+="("+configurazione.getBeanComuneResidenza().getBeanProvincia().getSigla()+")";
         }
         }
         }
         }
         parametriFattura.put("4",comune);
         
         String telefono="";
         boolean verifica=true;
         if(configurazione.getTelefono()!=null){
         if(configurazione.getTelefono().length() > 1){
         telefono+="Tel."+configurazione.getTelefono();
         verifica=false;
         }
         }
         
         if(configurazione.getFax()!=null){
         if(configurazione.getFax().length() > 1){
         if(verifica){
         telefono+="Fax.";
         }else{
         telefono+=" Fax.";
         }
         telefono+=configurazione.getFax();
         }
         }
         
         verifica=true;
         
         if(configurazione.getCellulare()!=null){
         if(configurazione.getCellulare().length() > 1){
         telefono+=" Cell."+configurazione.getCellulare();
         verifica=false;
         }
         }
         
         if(verifica){
         if(configurazione.getCellulare2()!=null){
         if(configurazione.getCellulare2().length() > 1){
         telefono+=" Cell."+configurazione.getCellulare2();
         }
         }
         }
         
         parametriFattura.put("5",telefono);
         
         String codFisc="";
         verifica=true;
         
         if(configurazione.getPartitaIva()!=null){
         codFisc="P.iva: "+configurazione.getPartitaIva();
         verifica=false;
         }
         if(configurazione.getPartitaIva()!=null){
         if(verifica){
         codFisc+="C.F.: "+configurazione.getCodiceFiscale();
         }else{
         codFisc+=" C.F.: "+configurazione.getCodiceFiscale();
         }
         }
         parametriFattura.put("6",codFisc);
         
         String datiPersonali="";
         if(configurazione.getEmail()!=null){
         datiPersonali=configurazione.getEmail();
         }
         if(configurazione.getWeb()!=null){
         if(datiPersonali.length()>2){
         datiPersonali+=" - "+configurazione.getWeb();
         }else{
         datiPersonali+=configurazione.getWeb();
         }
         }
         parametriFattura.put("7",datiPersonali);
         */
        //Cliente
        parametriFattura.put("8", this.getRagioneSocialeCli());
        parametriFattura.put("9", this.getDettaglioSocialeCli());
        parametriFattura.put("10", this.getIndirizzoCli());

        String comune = "";
        if (this.getBeanComuneResidenzaCli() != null) {
            if (this.getBeanComuneResidenzaCli().getId() != null) {
                comune = this.getBeanComuneResidenzaCli().getCap() + "-" + this.getBeanComuneResidenzaCli().getDescrizione();
            }
        }

        if (this.getBeanComuneResidenzaCli().getBeanProvincia() != null) {
            if (this.getBeanComuneResidenzaCli().getBeanProvincia().getId() != null) {
                comune += " (" + this.getBeanComuneResidenzaCli().getBeanProvincia().getSigla() + ") Italia";
            }
        }
        parametriFattura.put("11", comune);

        String telCliente = "Tel.";
        if (this.beanCliente != null) {
            if (this.beanCliente.getTelefono() != null) {
                if (this.beanCliente.getTelefono().length() > 1) {
                    telCliente += " " + this.beanCliente.getTelefono() + " -";
                }
            }
            if (this.beanCliente.getCellulare() != null) {
                if (this.beanCliente.getCellulare().length() > 1) {
                    telCliente += " " + this.beanCliente.getCellulare();
                }
            }
        }

        parametriFattura.put("11b", telCliente);

        if (this.getIndirizzo2Cli() != null) {
            if (this.getIndirizzo2Cli().length() > 46) {
                parametriFattura.put("12", this.getIndirizzo2Cli().substring(0, 45));
                parametriFattura.put("13", this.getIndirizzo2Cli().substring(45, this.getIndirizzo2Cli().length()));
            } else {
                parametriFattura.put("12", this.getIndirizzo2Cli());
                parametriFattura.put("13", "");
            }
        } else {
            parametriFattura.put("12", this.getIndirizzo2Cli());
            parametriFattura.put("13", "");
        }

        //DatiFattura
        parametriFattura.put("14", this.tipoDocumento);
        String codFiscale = "";
        String partIva = "";
        if (this.partitaIvaCli != null) {
            partIva = this.partitaIvaCli;
        }
        if (this.codiceFiscaleCli != null) {
            codFiscale = this.codiceFiscaleCli;
        }
        parametriFattura.put("15a", partIva);
        parametriFattura.put("15b", codFiscale);

        String numFattura = "";
        BeanLogin login = (BeanLogin) Utilita.getSession().getAttribute("login");

        if (this.codice != null) {
            numFattura = this.codice.toString();
        }
        if (login.getStampaAnno().equals("S")) {
            numFattura += "/" + login.getAnnoGestione().toString().substring(2, 4);
        }
        parametriFattura.put("16", numFattura);

        if (this.data != null) {
            java.sql.Date dd = new java.sql.Date(this.data.getTime());
            parametriFattura.put("17", dd);
        } else {
            parametriFattura.put("17", "");
        }

        if (this.beanCliente != null) {
            if (this.beanCliente.getCodice() != null) {
                parametriFattura.put("19", this.beanCliente.getCodice().toString());
            } else {
                parametriFattura.put("19", "");
            }
        } else {
            parametriFattura.put("19", "");
        }
        //parametriFattura.put("20","");
        /*
         if(this.dataScontrino!=null){
         java.sql.Date dd=new java.sql.Date(this.dataScontrino.getTime());
         parametriFattura.put("19",dd);
         }else{
         parametriFattura.put("19","");
         }
         
         if(this.numeroScontrino!=null){
         if(this.numeroScontrino.intValue()!=0){
         parametriFattura.put("20",this.numeroScontrino.toString());
         }else{
         parametriFattura.put("20","");
         }
         }else{
         parametriFattura.put("20","");
         }
         */

        /*
         Integer numP=new Integer(this.listaProdotti.size());
         numP=new Integer(numP.intValue() % 24);
         if(numP.intValue()>1){
         for(int u=0;u<numP.intValue();u++){
         parametriFattura.put("18"+u,new Integer(u).toString());
         }
         }else{
         parametriFattura.put("18","1");
         }
         **/
        if (this.beanTipoPagamento != null) {
            parametriFattura.put("21", this.beanTipoPagamento.getDescrizione());
        } else {
            parametriFattura.put("21", "");
        }

        String banca = "";
        if (this.beanBanca != null) {
            if (this.beanBanca.getId() != null) {
                if (this.beanBanca.getDescrizione().length() >= 24) {
                    banca = this.beanBanca.getDescrizione().substring(0, 23) + "./";
                } else {
                    banca = this.beanBanca.getDescrizione() + "/";
                }
                banca += "IBAN:" + this.beanBanca.getIban();
            } else {
                banca += riempiSpazi(banca, 57);
            }
        } else {
            banca += riempiSpazi(banca, 57);
        }

        parametriFattura.put("22", banca);
        if (this.listaProdotti != null) {
            HashMap mappaPagine = new HashMap();
            ArrayList listaPagine = new ArrayList();

            for (int i = 0; i < this.listaProdotti.size(); i++) {
                if (i % 36 == 0 && i != 0) {
                    listaPagine.add(mappaPagine);
                    mappaPagine = new HashMap();
                }
                BeanProdottoDett beanProdottoDett = (BeanProdottoDett) this.listaProdotti.get(i);
                mappaPagine.put("23" + i, beanProdottoDett.getCodice().toString());
                mappaPagine.put("24a" + i, beanProdottoDett.getDescrizioneBreve());
                String unitaMisura = "";
                if (beanProdottoDett.getUm().intValue() == 1) {
                    unitaMisura = "PZ";
                } else if (beanProdottoDett.getUm().intValue() == 2) {
                    unitaMisura = "Cart";
                } else if (beanProdottoDett.getUm().intValue() == 3) {
                    unitaMisura = "Kg";
                } else if (beanProdottoDett.getUm().intValue() == 4) {
                    unitaMisura = "Lt";
                } else if (beanProdottoDett.getUm().intValue() == 5) {
                    unitaMisura = "Num";
                } else if (beanProdottoDett.getUm().intValue() == 6) {
                    unitaMisura = "Cm";
                } else if (beanProdottoDett.getUm().intValue() == 7) {
                    unitaMisura = "Mt";
                } else if (beanProdottoDett.getUm().intValue() == 8) {
                    unitaMisura = "Km";
                }
                mappaPagine.put("25" + i, unitaMisura);
                mappaPagine.put("26" + i, beanProdottoDett.getQuantita().toString());
                mappaPagine.put("27" + i, beanProdottoDett.getPrezzoAcquisto().toString());
                if (login.getStampaSconto().equals("S")) {
                    mappaPagine.put("28" + i, beanProdottoDett.getSconto().toString());
                } else {
                    mappaPagine.put("28" + i, "0");
                }
                mappaPagine.put("29" + i, arrotonda(new Double(beanProdottoDett.getPrezzoVendita().doubleValue() - beanProdottoDett.getPrezzoIva().doubleValue()), 2).toString());
                if (beanProdottoDett.getIva().toString().contains(".")) {
                    String pp = beanProdottoDett.getIva().toString().substring(0, beanProdottoDett.getIva().toString().indexOf("."));
                    mappaPagine.put("30" + i, pp);
                } else {
                    mappaPagine.put("30" + i, beanProdottoDett.getIva().toString());
                }
            }
            listaPagine.add(mappaPagine);
            parametriFattura.put("pagine", listaPagine);
        }

        parametriFattura.put("31", this.totaleMerce);
        parametriFattura.put("32", this.sconto.toString());
        parametriFattura.put("33", this.netto.toString());
        parametriFattura.put("34", this.speseSpedizione.toString());
        parametriFattura.put("35", this.iva.toString());

        parametriFattura.put("36a", this.rigo1.get(0));
        parametriFattura.put("36b", this.rigo1.get(1));
        parametriFattura.put("36c", this.rigo1.get(2));
        parametriFattura.put("36d", this.rigo1.get(3));

        parametriFattura.put("37a", this.rigo2.get(0));
        parametriFattura.put("37b", this.rigo2.get(1));
        parametriFattura.put("37c", this.rigo2.get(2));
        parametriFattura.put("37d", this.rigo2.get(3));

        parametriFattura.put("38a", this.rigo4.get(0));
        parametriFattura.put("38b", this.rigo4.get(1));
        parametriFattura.put("38c", this.rigo4.get(2));
        parametriFattura.put("38d", this.rigo4.get(3));

        parametriFattura.put("21a", this.rigo5.get(0));
        parametriFattura.put("21b", this.rigo5.get(1));
        parametriFattura.put("21c", this.rigo5.get(2));
        parametriFattura.put("21d", this.rigo5.get(3));

        /*
         parametriFattura.put("38a", this.rigo3.get(0));
         parametriFattura.put("38b", this.rigo3.get(1));
         parametriFattura.put("38c", this.rigo3.get(2));
         parametriFattura.put("38d", this.rigo3.get(3));

         parametriFattura.put("21a", this.rigo4.get(0));
         parametriFattura.put("21b", this.rigo4.get(1));
         parametriFattura.put("21c", this.rigo4.get(2));
         parametriFattura.put("21d", this.rigo4.get(3));
         */
        parametriFattura.put("39", this.imponibile.toString());
        String acc = "0.00";
        if (this.acconto != null) {
            if (this.acconto.toString().contains(".")) {
                String pp = this.acconto.toString().substring(this.acconto.toString().indexOf(".") + 1, this.acconto.toString().length());
                if (pp.length() == 1) {
                    acc = this.acconto.toString() + "0";
                } else {
                    acc = this.acconto.toString();
                }
            } else {
                acc = this.acconto.toString();
            }
        }
        parametriFattura.put("40", "Acconto: " + acc);

        if (this.data1 != null) {
            java.sql.Date dd = new java.sql.Date(this.data1.getTime());
            parametriFattura.put("40a", dd);
        } else {
            parametriFattura.put("40a", "");
        }
        if (this.data2 != null) {
            java.sql.Date dd = new java.sql.Date(this.data2.getTime());
            parametriFattura.put("40b", dd);
        } else {
            parametriFattura.put("40b", "");
        }
        if (this.data3 != null) {
            java.sql.Date dd = new java.sql.Date(this.data3.getTime());
            parametriFattura.put("40c", dd);
        } else {
            parametriFattura.put("40c", "");
        }
        if (this.data4 != null) {
            java.sql.Date dd = new java.sql.Date(this.data4.getTime());
            parametriFattura.put("40d", dd);
        } else {
            parametriFattura.put("40d", "");
        }

        if (this.importo1 != null) {
            if (this.importo1 != new Double(0)) {
                parametriFattura.put("41a", this.importo1.toString());
            } else {
                parametriFattura.put("41a", "");
            }
        } else {
            parametriFattura.put("41a", "");
        }
        if (this.importo2 != null) {
            if (this.importo2 != new Double(0)) {
                parametriFattura.put("41b", this.importo2.toString());
            } else {
                parametriFattura.put("41b", "");
            }
        } else {
            parametriFattura.put("41b", "");
        }
        if (this.importo3 != null) {
            if (this.importo3 != new Double(0)) {
                parametriFattura.put("41c", this.importo3.toString());
            } else {
                parametriFattura.put("41c", "");
            }
        } else {
            parametriFattura.put("41c", "");
        }
        if (this.importo4 != null) {
            if (this.importo4 != new Double(0)) {
                parametriFattura.put("41d", this.importo4.toString());
            } else {
                parametriFattura.put("41d", "");
            }
        } else {
            parametriFattura.put("41d", "");
        }

        parametriFattura.put("42", this.totale.toString());

        if (this.getBeanVettore() != null) {
            parametriFattura.put("43", this.getBeanVettore().getRagioneSociale());
        } else {
            parametriFattura.put("43", "");
        }

        if (this.getBeanAspetto() != null) {
            parametriFattura.put("44", this.getBeanAspetto().getDescrizione());
        } else {
            parametriFattura.put("44", "");
        }

        if (this.getBeanConsegna() != null) {
            parametriFattura.put("45", this.getBeanConsegna().getDescrizione());
        } else {
            parametriFattura.put("45", "");
        }

        if (this.getBeanCausale() != null) {
            parametriFattura.put("46", this.getBeanCausale().getDescrizione());
        } else {
            parametriFattura.put("46", "");
        }

        if (this.getBeanAgente() != null) {
            parametriFattura.put("47", this.getBeanAgente().getDescrizione());
        } else {
            parametriFattura.put("47", "");
        }

        if (this.dataTrasporto != null) {
            java.sql.Date dd = new java.sql.Date(this.dataTrasporto.getTime());
            parametriFattura.put("47a", dd);
        } else {
            parametriFattura.put("47a", "");
        }

        if (this.ora != null && this.minuti != null) {
            parametriFattura.put("47b", this.ora.toString() + ":" + this.minuti);
        } else {
            parametriFattura.put("47b", "");
        }

        parametriFattura.put("48", this.numColliSpedizione.toString());
        parametriFattura.put("49", this.pesoColli.toString());
        if (porto != null) {
            if (porto.intValue() == 1) {
                parametriFattura.put("50", "Franco");
            } else if (porto.intValue() == 2) {
                parametriFattura.put("50", "Assegnato");
            }
        } else {
            parametriFattura.put("50", "");
        }
        parametriFattura.put("51", this.note);
        return parametriFattura;
    }

    public Double getNetto() {
        return netto;
    }

    public void setNetto(Double netto) {
        this.netto = netto;
    }

    public String riempiSpazi(String valore, int cicli) {
        int numero = cicli - valore.length();
        for (int i = 0; i < numero; i++) {
            valore += " ";
        }
        return valore;
    }

    public BeanAspetto getBeanAspetto() {
        return beanAspetto;
    }

    public void setBeanAspetto(BeanAspetto beanAspetto) {
        this.beanAspetto = beanAspetto;
    }

    public BeanConsegna getBeanConsegna() {
        return beanConsegna;
    }

    public void setBeanConsegna(BeanConsegna beanConsegna) {
        this.beanConsegna = beanConsegna;
    }

    public BeanVettore getBeanVettore() {
        return beanVettore;
    }

    public void setBeanVettore(BeanVettore beanVettore) {
        this.beanVettore = beanVettore;
    }

    public BeanCausale getBeanCausale() {
        return beanCausale;
    }

    public void setBeanCausale(BeanCausale beanCausale) {
        this.beanCausale = beanCausale;
    }

    public Integer getOra() {
        return ora;
    }

    public void setOra(Integer ora) {
        this.ora = ora;
    }

    public Integer getMinuti() {
        return minuti;
    }

    public void setMinuti(Integer minuti) {
        this.minuti = minuti;
    }

    public java.util.Date getDataTrasporto() {
        return dataTrasporto;
    }

    public void setDataTrasporto(java.util.Date dataTrasporto) {
        this.dataTrasporto = dataTrasporto;
    }

    public ArrayList getListaProdottiLookup() {
        return listaProdottiLookup;
    }

    public void setListaProdottiLookup(ArrayList listaProdottiLookup) {
        this.listaProdottiLookup = listaProdottiLookup;
    }

    public ArrayList getRigo1() {
        return rigo1;
    }

    public void setRigo1(ArrayList rigo1) {
        this.rigo1 = rigo1;
    }

    public ArrayList getRigo2() {
        return rigo2;
    }

    public void setRigo2(ArrayList rigo2) {
        this.rigo2 = rigo2;
    }

    public ArrayList getRigo3() {
        return rigo3;
    }

    public void setRigo3(ArrayList rigo3) {
        this.rigo3 = rigo3;
    }

    public ArrayList getRigo4() {
        return rigo4;
    }

    public void setRigo4(ArrayList rigo4) {
        this.rigo4 = rigo4;
    }

    public ArrayList getRigo5() {
        return rigo5;
    }

    public void setRigo5(ArrayList rigo5) {
        this.rigo5 = rigo5;
    }

    public Double getTotaleMerce() {
        return totaleMerce;
    }

    public void setTotaleMerce(Double totaleMerce) {
        this.totaleMerce = totaleMerce;
    }

    public java.util.Date getDataScontrino() {
        return dataScontrino;
    }

    public void setDataScontrino(java.util.Date dataScontrino) {
        this.dataScontrino = dataScontrino;
    }

    public Integer getNumeroScontrino() {
        return numeroScontrino;
    }

    public void setNumeroScontrino(Integer numeroScontrino) {
        this.numeroScontrino = numeroScontrino;
    }

    public Double arrotonda(Object obj, int precisione) {
        Double valore = (Double) obj;
        Double valoreArr = new Double(0);
        double pot = Math.pow(10, precisione);
        double v = valore.doubleValue() * pot;
        valoreArr = new Double(Math.round(v) / pot);
        return valoreArr;
    }

    public Integer getPorto() {
        return porto;
    }

    public void setPorto(Integer porto) {
        this.porto = porto;
    }

    public java.util.Date getData1() {
        return data1;
    }

    public void setData1(java.util.Date data1) {
        this.data1 = data1;
    }

    public java.util.Date getData2() {
        return data2;
    }

    public void setData2(java.util.Date data2) {
        this.data2 = data2;
    }

    public java.util.Date getData3() {
        return data3;
    }

    public void setData3(java.util.Date data3) {
        this.data3 = data3;
    }

    public java.util.Date getData4() {
        return data4;
    }

    public void setData4(java.util.Date data4) {
        this.data4 = data4;
    }

    public String getPagato1() {
        return pagato1;
    }

    public void setPagato1(String pagato1) {
        this.pagato1 = pagato1;
    }

    public String getPagato2() {
        return pagato2;
    }

    public void setPagato2(String pagato2) {
        this.pagato2 = pagato2;
    }

    public String getPagato3() {
        return pagato3;
    }

    public void setPagato3(String pagato3) {
        this.pagato3 = pagato3;
    }

    public String getPagato4() {
        return pagato4;
    }

    public void setPagato4(String pagato4) {
        this.pagato4 = pagato4;
    }

    public Double getImporto1() {
        return importo1;
    }

    public void setImporto1(Double importo1) {
        this.importo1 = importo1;
    }

    public Double getImporto2() {
        return importo2;
    }

    public void setImporto2(Double importo2) {
        this.importo2 = importo2;
    }

    public Double getImporto3() {
        return importo3;
    }

    public void setImporto3(Double importo3) {
        this.importo3 = importo3;
    }

    public Double getImporto4() {
        return importo4;
    }

    public void setImporto4(Double importo4) {
        this.importo4 = importo4;
    }

    public String getPagatoBanca() {
        return pagatoBanca;
    }

    public void setPagatoBanca(String pagatoBanca) {
        this.pagatoBanca = pagatoBanca;
    }

    public Double getImpostaIva4() {
        return impostaIva4;
    }

    public void setImpostaIva4(Double impostaIva4) {
        this.impostaIva4 = impostaIva4;
    }

    public Double getImpostaIva10() {
        return impostaIva10;
    }

    public void setImpostaIva10(Double impostaIva10) {
        this.impostaIva10 = impostaIva10;
    }

    public Double getImpostaIva20() {
        return impostaIva20;
    }

    public void setImpostaIva20(Double impostaIva20) {
        this.impostaIva20 = impostaIva20;
    }

    public Double getImponIva4() {
        return imponIva4;
    }

    public void setImponIva4(Double imponIva4) {
        this.imponIva4 = imponIva4;
    }

    public Double getImponIva10() {
        return imponIva10;
    }

    public void setImponIva10(Double imponIva10) {
        this.imponIva10 = imponIva10;
    }

    public Double getImponIva20() {
        return imponIva20;
    }

    public void setImponIva20(Double imponIva20) {
        this.imponIva20 = imponIva20;
    }

    public Double getUtile() {
        return utile;
    }

    public void setUtile(Double utile) {
        this.utile = utile;
    }

    public Double getPrezzoAcquistoUtile() {
        return prezzoAcquistoUtile;
    }

    public void setPrezzoAcquistoUtile(Double prezzoAcquistoUtile) {
        this.prezzoAcquistoUtile = prezzoAcquistoUtile;
    }

    public Double getPrezzoScontato() {
        return prezzoScontato;
    }

    public void setPrezzoScontato(Double prezzoScontato) {
        this.prezzoScontato = prezzoScontato;
    }

    public Double getAcconto() {
        return acconto;
    }

    public void setAcconto(Double acconto) {
        this.acconto = acconto;
    }

    public Integer getCodiceListino() {
        return codiceListino;
    }

    public void setCodiceListino(Integer codiceListino) {
        this.codiceListino = codiceListino;
    }

    public BeanAgente getBeanAgente() {
        return beanAgente;
    }

    public void setBeanAgente(BeanAgente beanAgente) {
        this.beanAgente = beanAgente;
    }

    public String getDettaglioSocialeCli() {
        return dettaglioSocialeCli;
    }

    public void setDettaglioSocialeCli(String dettaglioSocialeCli) {
        this.dettaglioSocialeCli = dettaglioSocialeCli;
    }

    public SelectItem[] getListini() {

        BeanLogin login = (BeanLogin) Utilita.getSession().getAttribute("login");
        listini = new SelectItem[6];
        listini[0] = new SelectItem(new Integer(0), "Listino Pieno");
        listini[1] = new SelectItem(new Integer(1), login.getListino1());
        listini[2] = new SelectItem(new Integer(2), login.getListino2());
        listini[3] = new SelectItem(new Integer(3), login.getListino3());
        listini[4] = new SelectItem(new Integer(4), login.getListino4());
        listini[5] = new SelectItem(new Integer(5), login.getListino5());

        return listini;
    }

    public void setListini(SelectItem[] listini) {
        this.listini = listini;
    }

    public Double getImpostaIva21() {
        return impostaIva21;
    }

    public void setImpostaIva21(Double impostaIva21) {
        this.impostaIva21 = impostaIva21;
    }

    public Double getImponIva21() {
        return imponIva21;
    }

    public void setImponIva21(Double imponIva21) {
        this.imponIva21 = imponIva21;
    }

    public Double getImpostaIva22() {
        return impostaIva22;
    }

    public void setImpostaIva22(Double impostaIva22) {
        this.impostaIva22 = impostaIva22;
    }

    public Double getImponIva22() {
        return imponIva22;
    }

    public void setImponIva22(Double imponIva22) {
        this.imponIva22 = imponIva22;
    }

    public String getDataString() {
        String data = "";
        if (this.data != null) {
            Calendar dataFattura = new GregorianCalendar();
            dataFattura.setTime(this.data);
            int aaaa = dataFattura.get(Calendar.YEAR);
            String mm = new Integer(dataFattura.get(Calendar.MONTH) + 1).toString();
            String gg = new Integer(dataFattura.get(Calendar.DAY_OF_MONTH)).toString();
            if (mm.length() == 1) {
                mm = "0" + mm;
            }
            if (gg.length() == 1) {
                gg = "0" + gg;
            }
            data = gg + "/" + mm + "/" + aaaa;
        }
        return data;
    }

    /**
     * @return the scaricato
     */
    public String getScaricato() {
        return scaricato;
    }

    /**
     * @param scaricato the scaricato to set
     */
    public void setScaricato(String scaricato) {
        this.scaricato = scaricato;
    }

    /**
     * @return the beanFattura
     */
    public BeanFattura getBeanFattura() {
        return beanFattura;
    }

    /**
     * @param beanFattura the beanFattura to set
     */
    public void setBeanFattura(BeanFattura beanFattura) {
        this.beanFattura = beanFattura;
    }

}
